/*
 * @Descripttion: 用户的信息
 * @version: 
 * @Author: Bruce
 * @Date: 2020-06-02 11:44:13
 * @LastEditors: Bruce
 * @LastEditTime: 2020-06-03 11:09:19
 */ 

 let userModule = {
    namespaced:true,
    state:{
        token: localStorage.getItem("token") || ""//密钥
    },
    mutations:{
        ["GET_TOKEN"](state,token){//获取密钥
            state.token = token
            localStorage.setItem("token",state.token)
        },
        ["REMOVE_TOKEN"](state){//删除密钥
            state.token = ""
            localStorage.removeItem("token")
        }
    }
 }
 export default userModule




// 登录页拿到token，vuex存储token并且存到缓存里面，用户页根据vuex的数据获取token(推荐)
// 登录拿token存到缓存里面,用户页获取缓存里面的token，再监听token
// 登录页拿到token，eventBus把token发送给用户页同时存到缓存里面，用户页再根据eventBus和缓存显示token

// 能不能，登录页点击成功之后，再生成用户中心页
// 1)功能逻辑
// 2）技术 addRoutes（动态生成路由）

// 什么时候用eventBus，什么时候用vuex？
// 一般的组件之间传递数据，尽量使用eventBus

// 使用vuex
// 1)当一个数据是多个页面都需要引用的时候
// 2)需要使用异步的时候
// 3)模块化使用的时候


// 使用eventBus跳转页面的时候，事件会接收不了
// 解决方法是：在$emit的组件写上销毁之前发送事件，在$on的组件写上接收，并且要在销毁的时候也一同销毁事件
// 不能使用keep-alive